{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# StackingRegressor"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "An ensemble-learning meta-regressor for stacking regression"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "> from mlxtend.regressor import StackingRegressor"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Overview"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Stacking regression is an ensemble learning technique to combine multiple regression models via a meta-regressor. The individual regression models are trained based on the complete training set; then, the meta-regressor is fitted based on the outputs -- meta-features -- of the individual regression models in the ensemble."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![](./StackingRegressor_files/stackingregression_overview.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### References\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Breiman, Leo. \"[Stacked regressions.](http://link.springer.com/article/10.1023/A:1018046112532#page-1)\" Machine learning 24.1 (1996): 49-64."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example 1 - Simple Stacked Regression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from mlxtend.regressor import StackingRegressor\n",
    "from mlxtend.data import boston_housing_data\n",
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.linear_model import Ridge\n",
    "from sklearn.svm import SVR\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "# Generating a sample dataset\n",
    "np.random.seed(1)\n",
    "X = np.sort(5 * np.random.rand(40, 1), axis=0)\n",
    "y = np.sin(X).ravel()\n",
    "y[::5] += 3 * (0.5 - np.random.rand(8))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mean Squared Error: 0.2039\n",
      "Variance Score: 0.7049\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10cfc56a0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Initializing models\n",
    "\n",
    "lr = LinearRegression()\n",
    "svr_lin = SVR(kernel='linear')\n",
    "ridge = Ridge(random_state=1)\n",
    "svr_rbf = SVR(kernel='rbf')\n",
    "\n",
    "stregr = StackingRegressor(regressors=[svr_lin, lr, ridge], \n",
    "                           meta_regressor=svr_rbf)\n",
    "\n",
    "# Training the stacking classifier\n",
    "\n",
    "stregr.fit(X, y)\n",
    "stregr.predict(X)\n",
    "\n",
    "# Evaluate and visualize the fit\n",
    "\n",
    "print(\"Mean Squared Error: %.4f\"\n",
    "      % np.mean((stregr.predict(X) - y) ** 2))\n",
    "print('Variance Score: %.4f' % stregr.score(X, y))\n",
    "\n",
    "with plt.style.context(('seaborn-whitegrid')):\n",
    "    plt.scatter(X, y, c='lightgray')\n",
    "    plt.plot(X, stregr.predict(X), c='darkgreen', lw=2)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "StackingRegressor(meta_regressor=SVR(C=1.0, cache_size=200, coef0=0.0, degree=3, epsilon=0.1, gamma='auto',\n",
       "  kernel='rbf', max_iter=-1, shrinking=True, tol=0.001, verbose=False),\n",
       "         regressors=[SVR(C=1.0, cache_size=200, coef0=0.0, degree=3, epsilon=0.1, gamma='auto',\n",
       "  kernel='linear', max_iter=-1, shrinking=True, tol=0.001, verbose=False), LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False), Ridge(alpha=1.0, copy_X=True, fit_intercept=True, max_iter=None,\n",
       "   normalize=False, random_state=1, solver='auto', tol=0.001)],\n",
       "         verbose=0)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stregr"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example 2 - Stacked Regression and GridSearch"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To set up a parameter grid for scikit-learn's `GridSearch`, we simply provide the estimator's names in the parameter grid -- in the special case of the meta-regressor, we append the `'meta-'` prefix."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-9.810 +/- 6.86 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-9.591 +/- 6.67 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-9.591 +/- 6.67 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-9.819 +/- 6.87 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-9.600 +/- 6.68 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-9.600 +/- 6.68 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-9.878 +/- 6.91 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-9.665 +/- 6.71 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-9.665 +/- 6.71 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-4.839 +/- 3.98 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-3.986 +/- 3.16 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-3.986 +/- 3.16 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-4.875 +/- 4.01 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-4.005 +/- 3.17 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-4.005 +/- 3.17 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-5.162 +/- 4.27 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-4.166 +/- 3.31 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-4.166 +/- 3.31 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-4.872 +/- 3.05 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-5.566 +/- 3.72 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-5.566 +/- 3.72 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-4.848 +/- 3.03 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-5.550 +/- 3.70 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-5.550 +/- 3.70 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-4.674 +/- 2.87 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-5.387 +/- 3.55 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-5.387 +/- 3.55 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-5.857 +/- 4.32 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-5.105 +/- 3.69 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-5.081 +/- 3.69 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-5.866 +/- 4.33 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-5.144 +/- 3.71 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-5.144 +/- 3.71 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-5.952 +/- 4.37 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-5.452 +/- 3.94 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-5.452 +/- 3.94 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-0.240 +/- 0.18 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-0.083 +/- 0.12 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-0.083 +/- 0.12 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-0.251 +/- 0.19 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-0.086 +/- 0.12 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-0.086 +/- 0.12 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-0.270 +/- 0.20 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-0.107 +/- 0.12 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-0.107 +/- 0.12 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-1.639 +/- 1.12 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-2.256 +/- 1.70 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-2.256 +/- 1.70 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-1.616 +/- 1.10 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-2.237 +/- 1.68 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-2.237 +/- 1.68 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-1.437 +/- 0.95 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-2.096 +/- 1.57 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-2.096 +/- 1.57 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-1.362 +/- 0.87 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-0.671 +/- 0.22 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-0.670 +/- 0.22 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-1.404 +/- 0.91 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-0.682 +/- 0.23 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-0.682 +/- 0.23 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-1.692 +/- 1.16 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-0.819 +/- 0.34 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-0.819 +/- 0.34 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-1.159 +/- 1.13 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-0.734 +/- 0.72 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-0.734 +/- 0.72 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-1.200 +/- 1.17 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-0.751 +/- 0.74 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-0.750 +/- 0.73 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-1.239 +/- 1.21 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-0.890 +/- 0.87 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-0.889 +/- 0.87 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-0.735 +/- 0.52 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-1.247 +/- 0.81 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-1.247 +/- 0.81 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-0.725 +/- 0.52 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-1.212 +/- 0.79 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-1.211 +/- 0.79 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-0.640 +/- 0.48 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-0.980 +/- 0.63 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-0.979 +/- 0.63 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-2.669 +/- 2.59 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-3.038 +/- 2.95 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-3.037 +/- 2.95 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-2.671 +/- 2.60 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-2.957 +/- 2.87 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-2.952 +/- 2.87 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-2.660 +/- 2.59 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-2.997 +/- 2.93 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-2.999 +/- 2.93 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-1.648 +/- 1.70 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-1.371 +/- 1.41 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-1.370 +/- 1.40 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-1.679 +/- 1.73 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-1.371 +/- 1.41 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-1.369 +/- 1.41 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-1.893 +/- 1.94 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-1.377 +/- 1.43 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-1.377 +/- 1.42 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-4.113 +/- 3.15 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n",
      "-13.276 +/- 9.35 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n",
      "-13.287 +/- 9.36 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n",
      "-3.946 +/- 3.11 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n",
      "-12.797 +/- 8.93 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n",
      "-12.797 +/- 8.93 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n",
      "-3.551 +/- 2.90 {'lasso__alpha': 0.1, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n",
      "-9.457 +/- 6.08 {'lasso__alpha': 0.1, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n",
      "-9.447 +/- 6.08 {'lasso__alpha': 0.1, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n",
      "-9.941 +/- 6.89 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-9.716 +/- 6.70 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-9.716 +/- 6.70 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-9.953 +/- 6.90 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-9.725 +/- 6.71 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-9.725 +/- 6.71 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-10.035 +/- 6.93 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-9.793 +/- 6.74 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-9.793 +/- 6.74 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-5.238 +/- 4.24 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-4.240 +/- 3.29 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-4.240 +/- 3.29 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-5.277 +/- 4.28 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-4.267 +/- 3.31 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-4.267 +/- 3.31 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-5.584 +/- 4.56 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-4.480 +/- 3.48 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-4.480 +/- 3.48 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-4.649 +/- 2.88 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-5.364 +/- 3.56 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-5.364 +/- 3.56 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-4.625 +/- 2.86 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-5.343 +/- 3.55 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-5.343 +/- 3.55 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-4.430 +/- 2.69 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-5.172 +/- 3.39 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-5.172 +/- 3.39 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-6.131 +/- 4.33 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-5.607 +/- 3.90 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-5.607 +/- 3.90 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-6.150 +/- 4.34 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-5.653 +/- 3.94 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-5.653 +/- 3.94 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-6.300 +/- 4.44 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-5.957 +/- 4.14 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-5.957 +/- 4.14 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-0.286 +/- 0.21 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-0.118 +/- 0.13 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-0.118 +/- 0.13 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-0.290 +/- 0.21 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-0.122 +/- 0.13 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-0.122 +/- 0.13 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-0.263 +/- 0.19 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-0.162 +/- 0.14 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-0.161 +/- 0.14 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-1.386 +/- 0.96 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-2.040 +/- 1.58 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-2.040 +/- 1.58 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-1.361 +/- 0.94 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-2.029 +/- 1.57 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-2.029 +/- 1.57 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-1.182 +/- 0.79 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-1.873 +/- 1.43 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-1.874 +/- 1.44 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-1.775 +/- 1.14 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-0.902 +/- 0.32 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-0.903 +/- 0.32 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-1.812 +/- 1.17 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-0.923 +/- 0.33 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-0.922 +/- 0.33 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-2.085 +/- 1.44 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-1.080 +/- 0.47 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-1.079 +/- 0.47 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-1.208 +/- 1.22 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-0.865 +/- 0.87 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-0.864 +/- 0.87 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-1.218 +/- 1.23 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-0.881 +/- 0.89 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-0.877 +/- 0.89 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-1.369 +/- 1.39 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-1.031 +/- 1.05 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-1.034 +/- 1.05 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-0.532 +/- 0.38 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-0.878 +/- 0.57 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-0.878 +/- 0.57 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-0.524 +/- 0.37 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-0.847 +/- 0.55 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-0.848 +/- 0.55 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-0.445 +/- 0.33 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-0.669 +/- 0.43 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-0.670 +/- 0.43 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-2.682 +/- 2.59 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-3.012 +/- 2.92 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-3.012 +/- 2.92 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-2.688 +/- 2.59 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-3.022 +/- 2.93 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-3.019 +/- 2.92 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-2.586 +/- 2.48 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-2.771 +/- 2.68 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-2.772 +/- 2.68 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-1.901 +/- 1.93 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-1.385 +/- 1.42 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-1.385 +/- 1.42 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-1.933 +/- 1.96 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-1.388 +/- 1.42 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-1.387 +/- 1.42 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-2.159 +/- 2.17 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-1.421 +/- 1.45 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-1.421 +/- 1.45 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-2.620 +/- 1.60 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n",
      "-8.549 +/- 5.97 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n",
      "-8.543 +/- 5.97 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n",
      "-2.607 +/- 1.54 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n",
      "-7.940 +/- 5.42 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n",
      "-7.962 +/- 5.45 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n",
      "-2.615 +/- 1.28 {'lasso__alpha': 1.0, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n",
      "-5.429 +/- 3.35 {'lasso__alpha': 1.0, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n",
      "-5.418 +/- 3.35 {'lasso__alpha': 1.0, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n",
      "-9.941 +/- 6.89 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-9.716 +/- 6.70 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-9.716 +/- 6.70 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-9.953 +/- 6.90 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-9.725 +/- 6.71 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-9.725 +/- 6.71 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-10.035 +/- 6.93 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-9.793 +/- 6.74 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-9.793 +/- 6.74 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 0.1}\n",
      "-5.238 +/- 4.24 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-4.240 +/- 3.29 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-4.240 +/- 3.29 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-5.277 +/- 4.28 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-4.267 +/- 3.31 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-4.267 +/- 3.31 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-5.584 +/- 4.56 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-4.480 +/- 3.48 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-4.480 +/- 3.48 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 1.0}\n",
      "-4.649 +/- 2.88 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-5.364 +/- 3.56 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-5.364 +/- 3.56 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-4.625 +/- 2.86 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-5.343 +/- 3.55 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-5.343 +/- 3.55 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-4.430 +/- 2.69 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-5.172 +/- 3.39 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-5.172 +/- 3.39 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 0.1, 'meta-svr__gamma': 10.0}\n",
      "-6.131 +/- 4.33 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-5.607 +/- 3.90 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-5.607 +/- 3.90 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-6.150 +/- 4.34 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-5.653 +/- 3.94 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-5.653 +/- 3.94 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-6.300 +/- 4.44 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-5.957 +/- 4.14 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-5.957 +/- 4.14 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 0.1}\n",
      "-0.286 +/- 0.21 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-0.118 +/- 0.13 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-0.118 +/- 0.13 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-0.290 +/- 0.21 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-0.122 +/- 0.13 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-0.122 +/- 0.13 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-0.263 +/- 0.19 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-0.162 +/- 0.14 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-0.161 +/- 0.14 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 1.0}\n",
      "-1.386 +/- 0.96 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-2.040 +/- 1.58 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-2.040 +/- 1.58 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-1.361 +/- 0.94 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-2.029 +/- 1.57 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-2.029 +/- 1.57 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-1.182 +/- 0.79 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-1.873 +/- 1.43 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-1.874 +/- 1.44 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 1.0, 'meta-svr__gamma': 10.0}\n",
      "-1.775 +/- 1.14 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-0.902 +/- 0.32 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-0.903 +/- 0.32 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-1.812 +/- 1.17 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-0.923 +/- 0.33 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-0.922 +/- 0.33 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-2.085 +/- 1.44 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-1.080 +/- 0.47 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-1.079 +/- 0.47 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 0.1}\n",
      "-1.208 +/- 1.22 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-0.865 +/- 0.87 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-0.864 +/- 0.87 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-1.218 +/- 1.23 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-0.881 +/- 0.89 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-0.877 +/- 0.89 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-1.369 +/- 1.39 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-1.031 +/- 1.05 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-1.034 +/- 1.05 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 1.0}\n",
      "-0.532 +/- 0.38 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-0.878 +/- 0.57 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-0.878 +/- 0.57 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-0.524 +/- 0.37 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-0.847 +/- 0.55 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-0.848 +/- 0.55 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-0.445 +/- 0.33 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-0.669 +/- 0.43 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-0.670 +/- 0.43 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 10.0, 'meta-svr__gamma': 10.0}\n",
      "-2.682 +/- 2.59 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-3.012 +/- 2.92 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-3.012 +/- 2.92 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-2.688 +/- 2.59 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-3.022 +/- 2.93 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-3.019 +/- 2.92 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-2.586 +/- 2.48 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-2.771 +/- 2.68 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-2.772 +/- 2.68 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 0.1}\n",
      "-1.901 +/- 1.93 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-1.385 +/- 1.42 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-1.385 +/- 1.42 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-1.933 +/- 1.96 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-1.388 +/- 1.42 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-1.387 +/- 1.42 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-2.159 +/- 2.17 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-1.421 +/- 1.45 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-1.421 +/- 1.45 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 1.0}\n",
      "-2.620 +/- 1.60 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n",
      "-8.549 +/- 5.97 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n",
      "-8.543 +/- 5.97 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 0.1, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n",
      "-2.607 +/- 1.54 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n",
      "-7.940 +/- 5.42 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n",
      "-7.962 +/- 5.45 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 1.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n",
      "-2.615 +/- 1.28 {'lasso__alpha': 10.0, 'svr__C': 0.1, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n",
      "-5.429 +/- 3.35 {'lasso__alpha': 10.0, 'svr__C': 1.0, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n",
      "-5.418 +/- 3.35 {'lasso__alpha': 10.0, 'svr__C': 10.0, 'ridge__alpha': 10.0, 'meta-svr__C': 100.0, 'meta-svr__gamma': 10.0}\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/model_selection/_search.py:662: DeprecationWarning: The grid_scores_ attribute was deprecated in version 0.18 in favor of the more elaborate cv_results_ attribute. The grid_scores_ attribute will not be available from 0.20\n",
      "  DeprecationWarning)\n"
     ]
    }
   ],
   "source": [
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.linear_model import Lasso\n",
    "\n",
    "# Initializing models\n",
    "\n",
    "lr = LinearRegression()\n",
    "svr_lin = SVR(kernel='linear')\n",
    "ridge = Ridge(random_state=1)\n",
    "lasso = Lasso(random_state=1)\n",
    "svr_rbf = SVR(kernel='rbf')\n",
    "regressors = [svr_lin, lr, ridge, lasso]\n",
    "stregr = StackingRegressor(regressors=regressors, \n",
    "                           meta_regressor=svr_rbf)\n",
    "\n",
    "params = {'lasso__alpha': [0.1, 1.0, 10.0],\n",
    "          'ridge__alpha': [0.1, 1.0, 10.0],\n",
    "          'svr__C': [0.1, 1.0, 10.0],\n",
    "          'meta-svr__C': [0.1, 1.0, 10.0, 100.0],\n",
    "          'meta-svr__gamma': [0.1, 1.0, 10.0]}\n",
    "\n",
    "grid = GridSearchCV(estimator=stregr, \n",
    "                    param_grid=params, \n",
    "                    cv=5,\n",
    "                    refit=True)\n",
    "grid.fit(X, y)\n",
    "\n",
    "for params, mean_score, scores in grid.grid_scores_:\n",
    "        print(\"%0.3f +/- %0.2f %r\"\n",
    "              % (mean_score, scores.std() / 2.0, params))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mean Squared Error: 0.1844\n",
      "Variance Score: 0.7331\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10cfb2e48>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Evaluate and visualize the fit\n",
    "print(\"Mean Squared Error: %.4f\"\n",
    "      % np.mean((grid.predict(X) - y) ** 2))\n",
    "print('Variance Score: %.4f' % grid.score(X, y))\n",
    "\n",
    "with plt.style.context(('seaborn-whitegrid')):\n",
    "    plt.scatter(X, y, c='lightgray')\n",
    "    plt.plot(X, grid.predict(X), c='darkgreen', lw=2)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Note**\n",
    "\n",
    "The `StackingRegressor` also enables grid search over the `regressors` argument. However, due to the current implementation of `GridSearchCV` in scikit-learn, it is not possible to search over both, differenct classifiers and classifier parameters at the same time. For instance, while the following parameter dictionary works\n",
    "\n",
    "    params = {'randomforestregressor__n_estimators': [1, 100],\n",
    "    'regressors': [(regr1, regr1, regr1), (regr2, regr3)]}\n",
    "    \n",
    "it will use the instance settings of `regr1`, `regr2`, and `regr3` and not overwrite it with the `'n_estimators'` settings from `'randomforestregressor__n_estimators': [1, 100]`."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## API"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "## StackingRegressor\n",
      "\n",
      "*StackingRegressor(regressors, meta_regressor, verbose=0, use_features_in_secondary=False, store_train_meta_features=False, refit=True)*\n",
      "\n",
      "A Stacking regressor for scikit-learn estimators for regression.\n",
      "\n",
      "**Parameters**\n",
      "\n",
      "- `regressors` : array-like, shape = [n_regressors]\n",
      "\n",
      "    A list of regressors.\n",
      "    Invoking the `fit` method on the `StackingRegressor` will fit clones\n",
      "    of those original regressors that will\n",
      "    be stored in the class attribute\n",
      "    `self.regr_`.\n",
      "\n",
      "- `meta_regressor` : object\n",
      "\n",
      "    The meta-regressor to be fitted on the ensemble of\n",
      "    regressors\n",
      "\n",
      "- `verbose` : int, optional (default=0)\n",
      "\n",
      "    Controls the verbosity of the building process.\n",
      "    - `verbose=0` (default): Prints nothing\n",
      "    - `verbose=1`: Prints the number & name of the regressor being fitted\n",
      "    - `verbose=2`: Prints info about the parameters of the\n",
      "    regressor being fitted\n",
      "    - `verbose>2`: Changes `verbose` param of the underlying regressor to\n",
      "    self.verbose - 2\n",
      "\n",
      "- `use_features_in_secondary` : bool (default: False)\n",
      "\n",
      "    If True, the meta-regressor will be trained both on\n",
      "    the predictions of the original regressors and the\n",
      "    original dataset.\n",
      "    If False, the meta-regressor will be trained only on\n",
      "    the predictions of the original regressors.\n",
      "\n",
      "- `store_train_meta_features` : bool (default: False)\n",
      "\n",
      "    If True, the meta-features computed from the training data\n",
      "    used for fitting the\n",
      "    meta-regressor stored in the `self.train_meta_features_` array,\n",
      "    which can be\n",
      "    accessed after calling `fit`.\n",
      "\n",
      "\n",
      "**Attributes**\n",
      "\n",
      "- `regr_` : list, shape=[n_regressors]\n",
      "\n",
      "    Fitted regressors (clones of the original regressors)\n",
      "\n",
      "- `meta_regr_` : estimator\n",
      "\n",
      "    Fitted meta-regressor (clone of the original meta-estimator)\n",
      "\n",
      "- `coef_` : array-like, shape = [n_features]\n",
      "\n",
      "    Model coefficients of the fitted meta-estimator\n",
      "\n",
      "- `intercept_` : float\n",
      "\n",
      "    Intercept of the fitted meta-estimator\n",
      "\n",
      "- `train_meta_features` : numpy array, shape = [n_samples, len(self.regressors)]\n",
      "\n",
      "    meta-features for training data, where n_samples is the\n",
      "    number of samples\n",
      "    in training data and len(self.regressors) is the number of regressors.\n",
      "\n",
      "- `refit` : bool (default: True)\n",
      "\n",
      "    Clones the regressors for stacking regression if True (default)\n",
      "    or else uses the original ones, which will be refitted on the dataset\n",
      "    upon calling the `fit` method. Setting refit=False is\n",
      "    recommended if you are working with estimators that are supporting\n",
      "    the scikit-learn fit/predict API interface but are not compatible\n",
      "    to scikit-learn's `clone` function.\n",
      "\n",
      "**Examples**\n",
      "\n",
      "For usage examples, please see\n",
      "    [http://rasbt.github.io/mlxtend/user_guide/regressor/StackingRegressor/](http://rasbt.github.io/mlxtend/user_guide/regressor/StackingRegressor/)\n",
      "\n",
      "### Methods\n",
      "\n",
      "<hr>\n",
      "\n",
      "*fit(X, y)*\n",
      "\n",
      "Learn weight coefficients from training data for each regressor.\n",
      "\n",
      "**Parameters**\n",
      "\n",
      "- `X` : {array-like, sparse matrix}, shape = [n_samples, n_features]\n",
      "\n",
      "    Training vectors, where n_samples is the number of samples and\n",
      "    n_features is the number of features.\n",
      "\n",
      "- `y` : array-like, shape = [n_samples] or [n_samples, n_targets]\n",
      "\n",
      "    Target values.\n",
      "\n",
      "**Returns**\n",
      "\n",
      "- `self` : object\n",
      "\n",
      "\n",
      "<hr>\n",
      "\n",
      "*fit_transform(X, y=None, **fit_params)*\n",
      "\n",
      "Fit to data, then transform it.\n",
      "\n",
      "Fits transformer to X and y with optional parameters fit_params\n",
      "and returns a transformed version of X.\n",
      "\n",
      "**Parameters**\n",
      "\n",
      "- `X` : numpy array of shape [n_samples, n_features]\n",
      "\n",
      "    Training set.\n",
      "\n",
      "\n",
      "- `y` : numpy array of shape [n_samples]\n",
      "\n",
      "    Target values.\n",
      "\n",
      "**Returns**\n",
      "\n",
      "- `X_new` : numpy array of shape [n_samples, n_features_new]\n",
      "\n",
      "    Transformed array.\n",
      "\n",
      "<hr>\n",
      "\n",
      "*get_params(deep=True)*\n",
      "\n",
      "Return estimator parameter names for GridSearch support.\n",
      "\n",
      "<hr>\n",
      "\n",
      "*predict(X)*\n",
      "\n",
      "Predict target values for X.\n",
      "\n",
      "**Parameters**\n",
      "\n",
      "- `X` : {array-like, sparse matrix}, shape = [n_samples, n_features]\n",
      "\n",
      "    Training vectors, where n_samples is the number of samples and\n",
      "    n_features is the number of features.\n",
      "\n",
      "**Returns**\n",
      "\n",
      "- `y_target` : array-like, shape = [n_samples] or [n_samples, n_targets]\n",
      "\n",
      "    Predicted target values.\n",
      "\n",
      "<hr>\n",
      "\n",
      "*predict_meta_features(X)*\n",
      "\n",
      "Get meta-features of test-data.\n",
      "\n",
      "**Parameters**\n",
      "\n",
      "- `X` : numpy array, shape = [n_samples, n_features]\n",
      "\n",
      "    Test vectors, where n_samples is the number of samples and\n",
      "    n_features is the number of features.\n",
      "\n",
      "**Returns**\n",
      "\n",
      "- `meta-features` : numpy array, shape = [n_samples, len(self.regressors)]\n",
      "\n",
      "    meta-features for test data, where n_samples is the number of\n",
      "    samples in test data and len(self.regressors) is the number\n",
      "    of regressors.\n",
      "\n",
      "<hr>\n",
      "\n",
      "*score(X, y, sample_weight=None)*\n",
      "\n",
      "Returns the coefficient of determination R^2 of the prediction.\n",
      "\n",
      "The coefficient R^2 is defined as (1 - u/v), where u is the residual\n",
      "sum of squares ((y_true - y_pred) ** 2).sum() and v is the total\n",
      "sum of squares ((y_true - y_true.mean()) ** 2).sum().\n",
      "\n",
      "The best possible score is 1.0 and it can be negative (because the\n",
      "\n",
      "model can be arbitrarily worse). A constant model that always\n",
      "predicts the expected value of y, disregarding the input features,\n",
      "would get a R^2 score of 0.0.\n",
      "\n",
      "**Parameters**\n",
      "\n",
      "- `X` : array-like, shape = (n_samples, n_features)\n",
      "\n",
      "    Test samples.\n",
      "\n",
      "\n",
      "- `y` : array-like, shape = (n_samples) or (n_samples, n_outputs)\n",
      "\n",
      "    True values for X.\n",
      "\n",
      "\n",
      "- `sample_weight` : array-like, shape = [n_samples], optional\n",
      "\n",
      "    Sample weights.\n",
      "\n",
      "**Returns**\n",
      "\n",
      "- `score` : float\n",
      "\n",
      "    R^2 of self.predict(X) wrt. y.\n",
      "\n",
      "<hr>\n",
      "\n",
      "*set_params(**params)*\n",
      "\n",
      "Set the parameters of this estimator.\n",
      "\n",
      "The method works on simple estimators as well as on nested objects\n",
      "(such as pipelines). The latter have parameters of the form\n",
      "``<component>__<parameter>`` so that it's possible to update each\n",
      "component of a nested object.\n",
      "\n",
      "**Returns**\n",
      "\n",
      "self\n",
      "\n",
      "### Properties\n",
      "\n",
      "<hr>\n",
      "\n",
      "*coef_*\n",
      "\n",
      "None\n",
      "\n",
      "<hr>\n",
      "\n",
      "*intercept_*\n",
      "\n",
      "None\n",
      "\n",
      "\n"
     ]
    }
   ],
   "source": [
    "with open('../../api_modules/mlxtend.regressor/StackingRegressor.md', 'r') as f:\n",
    "    print(f.read())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  },
  "toc": {
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
